<template>
  <div :style="{height:height,width:width}" />
</template>

<script>
import resize from './mixins/resize'
// 全局引用
import * as echarts from 'echarts';
// import * as echarts from 'echarts/core'

// // 引入柱状图图表，图表后缀都为 Chart
// import { BarChart, PieChart, LineChart, GaugeChart, MapChart, LinesChart, GraphChart } from 'echarts/charts'
// // 引入提示框，标题，直角坐标系组件，组件后缀都为 Component
// import { TitleComponent, TooltipComponent, GridComponent, LegendComponent } from 'echarts/components'
// // 引入 Canvas 渲染器，注意引入 CanvasRenderer 或者 SVGRenderer 是必须的一步
// import { CanvasRenderer } from 'echarts/renderers'

// // 注册必须的组件
// echarts.use([TitleComponent, TooltipComponent, GridComponent, LegendComponent, BarChart, PieChart, GaugeChart, MapChart, LinesChart, CanvasRenderer, LineChart, GraphChart])
export default {
  name: 'AppEcharts',
  components: {},
  mixins: [resize],
  props: {
    width: {
      type: String,
      default: '100%'
    },
    height: {
      type: String,
      default: '350px'
    },
    options: {
      type: Object,
      required: true
    }
  },
  data() {
    return {
      myChart: {}
    }
  },
  watch: {
    options: {
      deep: true,
      handler(val) {
        setTimeout(() => {
          this.myChart.setOption(val)
        }, 400)
      }
    }
  },
  mounted() {
    this.myChart = echarts.init(this.$el)
    this.myChart.setOption(this.options)
  },
  beforeDestroy() {
    if (!this.chart) {
      return
    }
    this.chart.dispose()
    this.chart = null
  },
  methods: {
    setChartsOption(option) {
      this.myChart.setOption(option)
    }
  }
}
</script>

<style lang='scss'>
</style>
